• active window The window that defines the current program context (i.e., the one to which operations like "Save", "Cut", etc., apply). Typically the top, non-floating window. • activated Activated controls respond to user-generated events; inactivated controls do not respond and are greyed. • address A position in the computer's memory as a byte count from the beginning of memory. • alert A simple window that is typically used to display an error message or warning. See "Alert Utilities" topic in the "Commands" menu. • baseID The resource ID of a FaceWare module's main FCMD resource. Uniquely identifies a FaceWare module (FaceIt = 1100, ViewIt = 1200, BaseCt = 1310, ...). • basic control A control in a ViewIt window that is supported by the basic control driver, BaseCt. Most of the example controls in ViewIt's Import menu, and the icons at the top of this window are basic controls. • bit The smallest unit of memory. 8 bits = 1 byte, and 1024 bytes = 1 kilobyte = 1K. Each bit can be either on (set) or off (cleared). "Bit flags" refers to the use of bits as logical flags. 16 bit flags, for example, can be stored in a 2-byte integer, where the bits in the integer would have "bit values" of 1, 2, 4, 8, etc., starting with the "lo bit" (which is actually highest in memory!). Bits can also be tested, set, or cleared using the toolbox calls BitTst, BitSet, and BitClr. For example, adding 1 to the 2-byte integer "myInt" is the same as calling BitSet(@myInt,15), adding 2 = BitSet(@myInt,14), adding 4 = BitSet(@myInt,13), etc., where the bit offset being passed is the number of bits from the address of the integer in memory. • block Usually refers to a contiguous block of memory. The toolbox call "BlockMove", for example, copies the contents of a block from one location to another. • byte Eight bits. 1024 bytes = 1 kilobyte = 1K. • CDEF (control definition function) A code resource that can support controls in a Mac window. CDEF 0 supports the standard buttons and check boxes, and CDEF 1 supports standard scroll bar. CDEFs receive a limited number of messages, making them less powerful than ViewIt control drivers. • checked A checked menu item is one that has a checkmark. A checked control is a check box or radio button-type control whose value is equal to the maximum value, and an unchecked control has value = minimum value. • code resource Any resource that consists of executable code: CODE, FCMD, FACE, CDEF, MDEF, WDEF, etc. • control From Inside Macintosh: "An object in a window...with which the user...can cause instant action with visible results or change settings to modify a future action." Technically, a control in memory consists of records of information in relocatable blocks which define the control's position (bounds), appearance, behavior, and its associated control driver. See "Controls" topic in the ViewIt Guide for more info about controls. • control body The part of a control drawn behind all other parts, such as the yellow behind the text in this help control (or white if you have a B&W monitor). "Transparent" controls skip drawing any body. The "background" of the control is another name for its body. • control bounds The rectangle that defines the outer limits of the control. ViewIt's "Bounds" dialog is used to set this rectangle and other bounds-related parameters. • control content The part of a control drawn above its background and within its frame, such as the text in this help control. • control driver A FaceWare module that supports controls in ViewIt windows. See "About Control Drivers" in the "Views" topic in the ViewIt Guide. • control frame The part of a control drawn around the outer edge of the control, and above its background and content. The rectangle around this help control is a control frame. • control indent An optional space between a control's content area and its frame (set in Bounds dialog). The view control in this window, for example, has a right and bottom indent that causes the help control to be indented from the right and bottom edges of the view. CDEF-based controls do not recognize indent settings. • control list The control records for the controls in a Mac window are stored as a linked list in the order in which they are drawn (i.e., each control record contains a handle to the next control's control record). • control value 1. Each control has a 2-byte integer value associated with it (the Value field in ViewIt's Control dialog) that may or may not be used by the CDEF or driver that supports the control. 2. Controls that are linked to program variables (see "data link") have a "value" associated with them that is either the control value or some other private value representing the state of the control. • ControlRecord A type of record associated with each control. This record is stored in a relocatable block, the handle to which is of type "ControlHandle". The term "control record" refers to a record of type ControlRecord, and "control handle" to a handle of type ControlHandle. See "Controls" topic in ViewIt Guide. • data link A link between a program variable and the value of a control in a ViewIt window. Data linking facilitates moving data between a program and ViewIt windows. See "Data Links" in the ViewIt Guide. • data type An integer recognized by ViewIt and other FaceWare modules that define's a variable's type (i.e., whether it is a real, integer, string, etc., and its byte size). See "Data Links" in ViewIt Guide for a complete list of recognized data types. • dereference (indirection) To retrieve the information referred to by a pointer variable. If, for example, "longPtr" is a pointer to a 4-byte integer, then longPtr^ [Pascal], *longPtr [C], or long(longPtr) [Fortran] dereferences the pointer and returns the 4-byte integer. • dialog A Macintosh window that typically contains controls that are used to obtain input from the user. The old distinction between dialogs and other window types, however, is blurred by ViewIt since it can support so many different types of windows. • dispatching proc A procedure, function, or subroutine that can pass commands and parameters to a FaceWare module. • DITL A resource type used to define a "dialog item list" that is a list of items in a standard Mac dialog. • DLOG A resource type used to store information about a standard Mac dialog window and its associated DITL. • editable control A control that is type "Editable" (set in Control dialog under "Behavior"). The content of such controls can typically be edited (such as the text in this control). Only one editable control in a window can be selected at a time, and the currently selected editable control determines the current program context. • enabled Enabled menu items can be selected. Disabled menu items cannot be selected and are greyed (like inactive controls). Enabled controls return a message to the program when hit. Disabled controls do not return any message when hit (but can still be active - this help control is active but not enabled). • event From Inside Macintosh: "A notification...of some occurrence that the appliction may want to respond to." If using FaceIt, the low-level events returned by the toolbox call "WaitNextEvent" are pre-processed by FaceIt and the program only needs to deal with high-level messages returned in the fRec variables uMenuID, uMenuItem, etc. See "Event Handling" in the startup topics, "Windows" in the ViewIt Guide, and "The Main Loop" in the FaceIt Guide for more info about event handling when using FaceIt or ViewIt. • FCMD A resource type used to store the main code resource associated with a FaceWare module. • FCTL A resource type used to store a ViewIt control. An FCTL can store much more information than a CNTL. • fork Macintosh disk files consist of two parts: a data fork containing non-resource data, and a resource fork containing resources. ResEdit, for example, only edits resources in the resource fork of a file. • fRec A record defined in the include file "FaceStorXY" that is used by FaceWare modules to store and transmit information. See "fRec Record" in the ViewIt Guide and the "Include Files" startup topic. • FSSC Abbreviation for Font/Size/Style/Color. Usually used when referring to the corresponding ViewIt menus. • FVEW A resource type used to store a ViewIt view. FVEWs consist of information about the view plus all of its daughter controls. Stores much more info than a DITL. • FWND A resource type used to store a ViewIt window. Is a combination of window + view + control information that eliminates need for old WIND, DLOG, DITL, CNTL, ictb, etc., resources used to define windows. • hand scrolling Refers to scrolling done by dragging the content area of the control while the cursor is in the shape of a hand. Some controls do not support hand scrolling because they include support for scroll bars as part of the control (as in this help control). Others, like CDEFs, ignore the content rectangle and always draw into the visible control area, which also results in not supporting hand scrolling. Each driver's on-line help will usually indicate if hand scrolling is supported. Also see the "Controls" topic in the ViewIt Guide and the Bounds dialog's on-line help. • handle A type of variable that stores the memory address of a pointer (i.e., a pointer to a pointer). The pointer usually contains the address of a relocatable block in the heap. "Handle" is also loosely used to refer to the relocatable block itself. • heap The part of a program's memory partition that is not the stack (i.e., most of the memory that the program is using) where resources and dynamically allocated blocks reside. See "Memory Utilities" in "Commands" menu for some tips on managing heap space. • help control A control in a ViewIt window that is supported by the HelpCt control driver (such as the control containing this text). Help controls are used to support ViewIt's on-line help. See "Controls" in ViewIt Guide for info on how to learn about control drivers like HelpCt. • hilited Menu items become hilited as the cursor is moved over them. Some controls become hilited when they are pressed. Hiliting helps indicate that releasing the mouse over the item or control will then cause some action to occur. The action can usually be abandoned by moving the cursor away from the item or control before releasing the mouse. • include file Any file that must be included in some language- or compiler-specific manner with the main programming project before compilation. (This is the way we use this term, not its formal definition.) • instructions Each control in a ViewIt window can have an optional "instruction" string associated with it that is set in ViewIt's Control dialog. See the "Views" topic in the ViewIt Guide for info about the activate/deactivate and show/hide instructions supported by views, and the "Balloons" topic in the ViewIt Guide for info about instructions that add balloon help to controls. • labeled item A menu item whose title ends with "#n" in the MENU resource. See "Menu Handling" in the FaceIt Guide. • LoadIt A special FaceWare module that is used to find and load other modules. Any program that calls FaceWare modules must include LoadIt. • locked Relocatable blocks can be optionally locked to prevent them from moving in the heap. • long Typically used to describe a variable that occupies 4 bytes of memory, especially a "long integer". Also a Fortran function that accepts a memory address and returns long integer at that address (a dereference). • menu control A control in a ViewIt window that is linked to a MENU resource (such as those at the top of this window). • menu list Menu Manager's list of menus that can be accessed by the user. All such menus must be initialized, but not all initialized menus need be inserted in the list. The menu controls at the top of this window, for example, are already initialized, but are not inserted until you click on them. This minimizes the number of menus in the menu list, thereby avoiding numbering conflicts. • menuID A number within a MENU resource that is often used to identify the menu. menuIDs are often in the range of 1-255 since hierarchical menu items cannot be connected to menus with menuIDs outside this range. See the "Initializations", "The Main Loop", and "Menu Handling" topics in the FaceIt Guide. • modal Generally refers to a mode of program operation that restricts the user to a limited number of possible actions. A "modal window" is one that forces the user to deal with options in the window before proceeding. This Glossary window, for example, is modal. See "Windows" in ViewIt Guide. • modeless Generally refers to a mode of program operation that minimizes the restrictions on what a user can do. A "modeless window" is one that allows access to the main menu bar and other windows. See "Windows" in ViewIt Guide. • module A set of code and other resources that together form a single programming unit. These resources always include at least one FCMD and one FCNT resource. The resource ID of the FCMD, its "baseID", is unique to the module, and all other resources belonging to the module are numbered greater than or equal to baseID. All modules are language- and compiler-independent, and may or may not require the presence of other modules. Also referred to as a "FaceWare module". See the "Startup" topics for more info. • MoveIt A file-to-file resource mover that understands how to move FaceWare modules (i.e., it understands which resources need to be moved for each module). • override proc A procedure, function, or subroutine that is called in place of a control's control driver. See "Override" in the ViewIt Guide for further details. • palette Refers to either a palette-like menu (see "Menu Windows" in ViewIt Guide) or a color palette (see the "Palette Initializations" subtopic in "Initializations" in the FaceIt Guide). • partition A part of the computer's memory that is set aside for use by a particular program running under MultiFinder or System 7. • picture A saved sequence of QuickDraw drawing commands. • pointer A 4-byte variable used to store the memory address of another variable or a block in the heap. • record A block of contiguous memory consisting of integer, real, string, and/or other variable types. An "array" is a special type of record containing just 1 variable type. Records are also referred to as "structures". • relocatable block The Mac's Memory Manager supports blocks that can "float" in the program heap to reduce fragmentation of memory. The position of these relocatable blocks is tracked by the Memory Manager within pointers. The address of these pointers can then be stored in program variables as handles so that the location of the relocatable block can always be determined. • ResEdit (Resource Editor) Apple's resource-editing program. Included with the purchase of all FaceWare modules. See "Resource Files" in startup topics for more info about ResEdit. • resource Data or code stored in the resource fork of a file. Each resource is designated by a 4-letter type, a 2-byte integer ID number, and a name. This help text, for example, is stored in a TEXT-type resource numbered 1209 that is named "Glossary". • selected The selected menu item is the last one chosen by the user. The selected control is the editable control that is defining the current program context (i.e., the one to which operations like "Save", "Cut", etc., apply - this help control is currently selected). If in edit mode, the selected control is the one with a dashed border to which editing operations will apply. • shared A shared resource is one that can be used by more than one program at the same time (such as those in FaceWare modules in the FaceWare file). A shared record is a record containing information used by a module but also available to the main program (such as the fRec record used by all FaceWare modules). • solid body Refers to a control that has its background drawn (i.e., "Draw Solid Body" option is checked in ViewIt's Style menu when in edit mode). • specific A program-specific resource is one that has been customized for use by a particular program (such as a MENU or FWND). A module-specific message is one that is only returned by a particular module (such as FaceIt's active window change message that returns uMenuID = 1100 and uMenuItem = 2). • stack A small part of program memory set aside for storing temporary local variables and parameters passed "by value". See "Initializations" in the startup topics for more info. • standard item A labeled menu item whose behavior and appearance is handled by the module associated with the current program context. The "Copy" item in the edit menu in this window, for example, is being managed by the HelpCt driver that supports this help control. See "Menu Handling" in FaceIt Guide. • string A variable used to store ASCII characters. See the "About Compilers" program for a discussion of C, Pascal, and Fortran string types. • transparent Refers to a control that does not have its background drawn (i.e., "Draw Solid Body" item is not checked in ViewIt's Style menu when in edit mode). CDEF-based controls and many ViewIt controls do not support this option (see driver's on-line help for more info). • utility module A FaceWare module that does not require the presence of FaceIt, and supports functionality that can be used in any programming environment (i.e., any module other than FaceIt, ViewIt, or a control driver). • VarCode (variation code) A 2-byte integer associated with each control that can be optionally used by the CDEF or control driver. Typically used as a set of bit flags that modify the appearance or behavior of the control. • versID (version ID) Ten times the version number of a FaceWare module. The version number can be found as part of the name of the FCMD resource associated with the module. "FaceIt 2.0" and "FaceIt 2.04", for example, would have the same version ID = 20. • view A special type of control in a ViewIt window that can contain other non-view controls. This window has 1 view (the white background) and several "daughter" controls within it. See "Views" in ViewIt Guide. • WIND A resource type used to store information about a standard Mac non-dialog window. • window list The window records for the windows in a program are stored as a linked list from front to backmost window (i.e., each window record contains a pointer to the underlying window's window record). • WindowRecord A type of record associated with each window. This record is stored in a non-relocatable block, and the address of such a record is of type "WindowPtr". The term "window record" refers to a record of type WindowRecord, and "window pointer" to a pointer of type WindowPtr. Volume 1 of Inside Macintosh defines the content of WindowRecord-type records. • word Two bytes of memory. "Lo word" refers to the first two bytes of a 4-byte long variable, and "hi word" to the second two bytes. NOTE: "lo" bytes are actually higher in memory than "hi" bytes in same variable. • XY A suffix that denotes a compiler: XY = AF = Absoft MacFortran II, LF = Language Systems Fortran, LP = THINK Pascal, LC = THINK C, SC = Symantec C++, WP = MPW Pascal, WC = MPW C. See "About Compilers" program for more compiler info.